package me.softwareengineer.guice.rendering.module;

import me.softwareengineer.guice.rendering.annotation.PlainText;
import me.softwareengineer.guice.rendering.parser.DomGeneratorListener;
import me.softwareengineer.guice.rendering.parser.Parser;
import me.softwareengineer.guice.rendering.parser.imp.DomGeneratorListenerDefaultImp;
import me.softwareengineer.guice.rendering.parser.imp.plainText.PlainTextParser;

import com.google.inject.AbstractModule;
import com.google.inject.Scope;
import com.google.inject.binder.ScopedBindingBuilder;

/**
 * A Guice module binds the implementations of rendering module
 * 
 * @author yadtahir
 *
 */
public class LavaRenderingModule  extends AbstractModule{

	@Override
	protected void configure() {
		//Bind the implementations 
		//TODO make it singleton 
		bind(Parser.class).annotatedWith(PlainText.class).to(PlainTextParser.class);
		
		bind(DomGeneratorListener.class).to(DomGeneratorListenerDefaultImp.class);
	}

}
